#ifndef __HEALTH_CLUB_H
#define __HEALTH_CLUB_H

#include "device.h"
#include "trainer.h"

const int MAX_HEALTH_CLUB_NAME_LEN = 20;
const int MAX_TRAINERS = 100;

class HealthClub
{
	char name[MAX_HEALTH_CLUB_NAME_LEN];
	Device** allDevices;
	int numOfDevices;
	int phisicalSizeOfDevices;
	Trainer* allTrainers[MAX_TRAINERS];
	int numOfTrainers;

	HealthClub(const HealthClub& other);
public:
	enum RegistrationStatus {REGISTER_SUCCEED, REGISTER_FAILED_CLUB_IS_FOOL} ;

	HealthClub(const char* name);
	~HealthClub();

	void setName(const char* name);
	const char* getName() const {return name;}

	int getNumDevices()  const {return numOfDevices;}
	int getNumTrainers() const {return numOfTrainers;}

	Trainer* const getTrainer(const char* name) const;
	const Device*  getDevice (const char* name) const;

	Trainer*const* getAllTrainers() const {return allTrainers;}
	Device**       getAllDevices()  const {return allDevices;}

	RegistrationStatus  registerTrainer(const char* name);
	
	void addDevice(const Device &D);

	const HealthClub & operator=(const HealthClub & HC);				//#WD[2] RonnyR 3.12
    friend ostream & operator<<(ostream & os,const HealthClub & HC);    //#WD[2] RonnyR 3.12

};

#endif // __HEALTH_CLUB_H